ubuntu+nginx+php8+mysql8环境搭建教程 | 您所在的位置:网站首页 › php linux 环境搭建链接阿里rds › ubuntu+nginx+php8+mysql8环境搭建教程 |
一、Ubuntu系统安装
win7系统下安装Ubuntu20.04.5系统保姆级教程_慕白杨的博客-CSDN博客_win7系统安装ubuntu 二、编译安装安装nginx1、下载nginx nginx下载 选择 stable 版本,右键复制要下载版本的链接 2、打开终端 cd /usr/local/src wget http://nginx.org/download/nginx-1.22.0.tar.gz ---后面是nginx下载版本的链接 tar xvfz nginx-1.22.0.tar.gz ---解压 3、配置 cd nginx-1.22.0 ./configure --prefix=/usr/local/nginx 4、报错解决 (1)报错:./configure: error: the HTTP rewrite module requires the PCRE library. 解决方法: wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2 tar xfj pcre2-10.40.tar.bz2 继续配置nginx --(将pcre库路径写到配置命令中) ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre2-10.40 (2) 报错:./configure: error: the HTTP gzip module requires the zlib library. 解决方法: wget http://www.zlib.net/zlib-1.2.12.tar.gz tar xfz zlib-1.2.12.tar.gz 继续配置nginx --(将lib库路径写到配置命令中) ./configure --prefix=/usr/local/nginx --with-zlib=/usr/local/src/zlib-1.2.12 --with-pcre=/usr/local/src/pcre2-10.40https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2 5、配置成功 6、安装 make && make install
7、启动nginx cd /usr/local/nginx ./sbin/nginx 打开浏览器,输入http://localhost/ 出现如下页面,即可表示nginx启动成功!! 8、启动nginx提示80端口被占用问题 {nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) } 解决方法: (1)先查看nginx 是否已经启动 ps aux|grep nginx (2)或是apache已经默认在运行了 ps aux|grep httpd (3)杀掉进程 pkill -9 httpd 二、 编译安装PHP编译安装PHP,需要先提前安装多个它的依赖库。 1、官网下载 PHP: Downloads 2、编译安装 cd /usr/local/src wget https://www.php.net/distributions/php-8.0.23.tar.gz tar xfz php-8.0.23.tar.gz cd php-8.0.23 ./configure --prefix=/usr/local/php --with-gd\ --enable-gd-native-ttf --enable-mysqlnd\ --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd\ --with-openssl --enable-mbstring --enable-fpm\ 这里配置可能会提示错误,但没关系,根据提示一步步排查问题,然后解决! 3、 安装多个依赖库 我这里安装时提示必须安装(libxml-2.0 >= 2.9.0)、(sqlite3 > 3.7.4)、(oniguruma)、(zlib)、(libpng)。安装可通过apt安装或编译安装,选择适合自己的即可! 4、配置 ./configure --prefix=/usr/local/php --enable-gd --enable-gd-native-ttf --enable-mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --enable-fpm
5、安装 make && make install
安装成功!查看/usr/local下有无php文件夹。 6、总结 1、说缺少 openssl时,你安装了,仍然缺少,此时可安装 openssl-dev 就能解决问题! 2、apt-get install 时,提示没有软件包 此时,先排查apt源 ,如果源没问题 运行命令查询 apt-cache search 包名 按照名字进行安装 3、遇到错误时,不要慌张,搜索问题,一步一步解决!! 7、执行PHP程序 php-fpm --- php的独立运行程序 cd /usr/local/php ./sbin/php-fpm --- 执行php程序 报错: { [20-Sep-2022 18:11:01] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2) [20-Sep-2022 18:11:01] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf' [20-Sep-2022 18:11:01] ERROR: FPM initialization failed } 解决: cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf ./sbin/php-fpm 又报错: { WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 143. } vim /usr/local/php/etc/php-fpm.conf ---:set nu 显示行号,找到143行,看看 cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf ./sbim/php-fpm 继续报错: { [20-Sep-2022 18:18:52] ERROR: [pool www] cannot get gid for group 'nobody' } groupadd nobody ----添加组 nobody ./sbin/php-fpm ---运行 ps aux | grep php ---查看有无php进程,显示有master 表示php启动成功!! 8、php显示器 cd /usr/local/php ./bin/php -v --- 显示php版本号 ls bin/ 下面有个php,这个就是php的显示器 三、整合nginx+php1、nginx与PHP通信的原理(通俗版解释) nginx--80,php--9000,nginx与PHP是完全独立平行的进程,进程与进程之间是可以说话的。 用户在浏览器发起请求,说nginx,你来帮我解释一下,a.com/b.php文件,但nginx不会解析php文件呀,此时,它会借助进程之间可以通信的方式去找9000端口,找php,让它解析a.php ,但php蒙了,这么多目录,那个目录下的a.php呢? 这时候,nginx就会告诉它,在我的根目录下,那里,那里,把这个信息送给php,这时候,9000这个进程就会根据这个目录去寻找这个b.php文件,然后解析它,再将解析的这个结果,返回给nginx,nginx再显示在浏览器上。 2、新建php文件并访问它 cd /usr/local/nginx ---进入 nginx安装目录 cd conf/ ----进入nginx的配置文件目录 vim nginx.conf ---编辑它的配置文件 cd .. ---返回上级目录 vim ./html/a.php ----新建一个php文件,并写入内容 |
CopyRight 2018-2019 实验室设备网 版权所有 |